package com.yidu.service.impl;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.yidu.common.Tools;
import com.yidu.dao.ListenQualityTestingDetailMapper;
import com.yidu.dao.ListenQualityTestingMapper;
import com.yidu.domain.ListenQualityTesting;
import com.yidu.domain.ListenQualityTestingDetail;
import com.yidu.service.ListenQualityTestingDetailService;

/**
 * @title 质检明细Service实现类 
 * @author 江宇
 * @dateTime 2019年1月14日
 */
@Service
public class ListenQualityTestingDetailServiceImpl implements ListenQualityTestingDetailService {
	
	@Resource
	ListenQualityTestingDetailMapper dao;
	
	@Resource
	ListenQualityTestingMapper qtDao;
 
	/** 
	 * @title 增加质检明细
	 * @param ListenQualityTesting
	 * @return int
	 * @author 江宇
	 * @dateTime 2018年12月23日
	 * @versions 1.0
	 */
	@Override
	public int addQualityTestingDetail(String detailText,String qtId) {
		//按#号拆分前台创来的质检明细字符串
		String detailTexts[] =detailText.split("#");
		//定义未通过总数量变量
		int sumNoNumber=0;
		//定义质检总数量变量
		int sumNumber=0;
		int rows=0;
		//循环质检数组
		for (int i = 0; i < detailTexts.length; i++) {
			//创建质检明细类对象
			ListenQualityTestingDetail qtd=new ListenQualityTestingDetail();
			//UUID主键
			qtd.setQtdId(Tools.getRandomString(32));
			//质检ID赋值
			qtd.setQtId(qtId);
			//业务ID赋值
			qtd.setVocationalWorkId(detailTexts[i].split(",")[0]);
			//物品名称赋值
			qtd.setGoodsName(detailTexts[i].split(",")[1]);
			//质检数量赋值
			qtd.setQtdNumber(Integer.valueOf(detailTexts[i].split(",")[2]));
			//未通过数量赋值
			qtd.setQtdNoNumber(Integer.valueOf(detailTexts[i].split(",")[3]));
			//通过率赋值
			qtd.setQtPass(detailTexts[i].split(",")[4]);
			//质检时间赋值
			qtd.setOpenTime(new Date());
			//是否有效(有效)
			qtd.setIsva(1);
			//得到未通过总数量
			sumNoNumber=sumNoNumber+Integer.valueOf(detailTexts[i].split(",")[3]);
			//得到质检总数量
			sumNumber=sumNumber+Integer.valueOf(detailTexts[i].split(",")[2]);
			
			//调用增加质检明细的方法
			rows=dao.insertSelective(qtd);
		}
		
		//得到通过总数量
		Double d=Double.valueOf(sumNumber-sumNoNumber)/Double.valueOf(sumNumber);
		//创建质检类对象
		ListenQualityTesting qt=new ListenQualityTesting();
		//质检ID赋值
		qt.setQtId(qtId);
		//质检状态赋值(2已质检)
		qt.setQtStatus(2);
		//未通过总数量赋值
		qt.setQtNoNumber(sumNoNumber);
		//得到通过率
		int pass=(int) (d*100);
		//通过率赋值
		qt.setQtPass(pass+"%");
		//调用修改质检的方法
		rows=qtDao.updateByPrimaryKeySelective(qt);
		
		 
		
		return rows;
	}
	
	/**
     * @title 查询质检明细
     * @param Map
     * @return List
     * @author 江宇
     * @dateTime 2018年12月23日
     * @versions 1.0
     */
	@Override
	public List<ListenQualityTestingDetail> findQualityTestingDetail(Map<String, Object> map) {
		 
		return dao.findQualityTestingDetail(map);
	}
	
	/**
     * @title 查询质检明细行数
     * @param Map
     * @return int
     * @author 江宇
     * @dateTime 2018年12月23日
     * @versions 1.0
     */
	@Override
	public int findQualityTestingDetailCount(Map<String, Object> map) {
		
		return dao.findQualityTestingDetailCount(map);
	}

}
